# 带着二哈去旅行丶:ZZQ
# 生成时间：2021/12/10 下午5:33

print('1 另一种指定图表数据的方式')
'''
# 使用pandas数据分析工具
import pandas as pd
import eq_explore_data as ed
import plotly.express as px

data = pd.DataFrame(
    data=zip(ed.lons, ed.lats, ed.titles, ed.mags), columns=['经度', '纬度', '位置', '震级'])
data.head()
# Plotly Express 是Plotly的高级接口，语法与Matplotlib类似。
fig = px.scatter(
    # 调用px.scatter函数配置参数创建一个fig实例
    data,
    x='经度',  # x轴
    y='纬度',  # y轴
    range_x=[-200, 200],  # 范围
    range_y=[-90, 90],
    width=800,  # 宽度和高度为800
    height=800,
    title='全球地震散点图',  # 标题
)
fig.write_html('global_earthquakes_2.html')  # 将可视化图片保存为html文件
fig.show()
'''

print('2 定制标记的尺寸')
'''
# 使用pandas数据分析工具
import pandas as pd
import eq_explore_data as ed
import plotly.express as px

# 设置pandas
# # 显示所有列
# pd.set_option('display.max_columns', None)
# 显示所有行
# pd.set_option('display.max_rows', None)
# 显示宽度无限长
# pd.set_option('display.width', None)

# # 封装数据
data = pd.DataFrame(
    data=zip(ed.lons, ed.lats, ed.titles, ed.mags), columns=['经度', '纬度', '位置', '震级'])
data.head()
# head()根据位置返回对象的前n行。对于快速测试很有用。此方法用于返回数据帧或序列的前n行(默认值为5)。

# Plotly Express 是Plotly的高级接口，语法与Matplotlib类似。
fig = px.scatter(
    # 调用px.scatter函数配置参数创建一个fig实例
    data,   # 返回所有值
    x='经度',  # x轴
    y='纬度',  # y轴
    range_x=[-200, 200],  # 范围
    range_y=[-90, 90],
    width=800,  # 宽度和高度为800
    height=800,
    title='全球地震散点图',  # 标题
    size='震级',          # 指定散点图每个标记的尺寸，以震级字段来给定参数
    size_max=10,          # 像素默认为20 现指定为10
)
fig.write_html('global_earthquakes_2.html')  # 将可视化图片保存为html文件
fig.show()
'''
print('3 定制标记的颜色')
'''
# 定制标记颜色，呈现地震的严重程度。
import pandas as pd
import eq_explore_data as ed
import plotly.express as px

# 设置pandas
# pd.set_option('display.max_columns', None)
data = pd.DataFrame(data=zip(ed.lons, ed.lats, ed.titles, ed.mags),
                    columns=['经度', '纬度', '位置', '震级'])
# Plotly Express 是Plotly的高级接口，语法与Matplotlib类似。
fig = px.scatter(
    # 调用px.scatter函数配置参数创建一个fig实例
    data_frame=data,
    x='经度',  # x轴
    y='纬度',  # y轴
    range_x=[-200, 200],  # 范围
    range_y=[-90, 90],
    width=800,  # 宽度和高度为800
    height=800,
    title='全球地震散点图',  # 标题
    size='震级',          # 指定散点图每个标记的尺寸，以震级字段来给定参数
    size_max=10,          # 像素默认为20 现指定为10
    color_continuous_scale='jet',   # 使用自带的配色方案
    color='震级'          # color按照震级来显示不同颜色
)
fig.write_html('global_earthquakes_2.html')  # 将可视化图片保存为html文件
fig.show()
'''
print('添加鼠标指向时显示的文本')

import pandas as pd
import eq_explore_data as ed
import plotly.express as px

data = pd.DataFrame(data=zip(ed.lons, ed.lats, ed.titles, ed.mags),
                    columns=['经度', '纬度', '位置', '震级'])
# Plotly Express 是Plotly的高级接口，语法与Matplotlib类似。
fig = px.scatter(
    # 调用px.scatter函数配置参数创建一个fig实例
    data_frame=data,
    x='经度',  # x轴
    y='纬度',  # y轴
    range_x=[-200, 200],  # 范围
    range_y=[-90, 90],
    width=800,  # 宽度和高度为800
    height=800,
    title='全球地震散点图',  # 标题
    size='震级',  # 指定散点图每个标记的尺寸，以震级字段来给定参数
    size_max=10,  # 像素默认为20 现指定为10
    color_continuous_scale=px.colors.diverging.PRGn,  # 使用自带的配色方案
    color='震级',  # color按照震级来显示不同颜色
    hover_name='位置',    # 添加说明性文本，将鼠标指向表示地址的标记时显示出来
)
fig.write_html('global_earthquakes_2.html')  # 将可视化图片保存为html文件
fig.show()
